A stream of video frames, such as that generated by a video camera or read from a memory, frequently requires processing to improve the quality of the video or to extract features from the video. This processing is traditionally done by software in a post-processing operation. The post-processing operation may vary because (i) the parameters/coefficients of the algorithmic processing modules need to be modified; (ii) fine variations of a given algorithm need to be performed; and/or (iii) the operations that need to be performed on the video need to be changed. A software solution, however, while versatile, is slow and expensive in terms of processing power. Hardware-based algorithms are typically faster and more efficient, but hardware, by its nature, is difficult to reconfigure quickly and easily, especially when it must keep pace with live, streaming video. Existing hardware-based image processing systems thus produce non-optimal results because of their limitations in flexibility. A need therefore exists for a fast, efficient, and reconfigurable hardware-based image-processing system.